Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2015, 13:21
Новичок на форуме
Отправить личное сообщение для mrFlyer Посмотреть профиль Найти все сообщения от mrFlyer
 
Регистрация: 11.01.2015
Сообщений: 3

Canvas resize
Здравствуйте.

Нужна ваша помощь =(, так как с явой у меня что то очень печально.

Пытаюсь осилить ресайз изображения через canvas.

Сама функция вопросов не вызывает:

function fileResize(image){
    var canvas      = document.createElement('canvas');
    var ctx         = canvas.getContext("2d");      
    var newImage    = new Image();
    newImage.onload     = function(){
 
        canvas.width    = 300;
        canvas.height   = 300; 
            
        ctx.drawImage(this, 0, 0, 300, 300);
                // В этом месте измененное изображение показывается.
                //document.getElementById("testIMG").src    =   canvas.toDataURL('image/jpeg');
    }
    newImage.src    =   image.result;
}


Но не могу понять как потом получить само это изображение, вне функции. Те что бы получилось что то типа этого:
resizedImage    =   fileResize(image);
document.getElementById("testIMG").src  =   resizedImage.src;


Максимально успешный мой результат, это просто черный прямоугольник ...
Заранее спасибо за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2015, 13:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

mrFlyer,
Работа с изображением
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2015, 14:03
Новичок на форуме
Отправить личное сообщение для mrFlyer Посмотреть профиль Найти все сообщения от mrFlyer
 
Регистрация: 11.01.2015
Сообщений: 3

Сообщение от рони Посмотреть сообщение
mrFlyer,
Работа с изображением
Сама функция работает ... и вопрос тривиальный, но что то не могу на него получить ответ 3тий день на форумах. Мне нужно получить картинку в переменную, после ее работы, а не показать сразу в браузере пользователю.
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2015, 14:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

mrFlyer,
4 пост там строка 15
Ответить с цитированием
  #5 (permalink)  
Старый 12.01.2015, 14:43
Новичок на форуме
Отправить личное сообщение для mrFlyer Посмотреть профиль Найти все сообщения от mrFlyer
 
Регистрация: 11.01.2015
Сообщений: 3

Сообщение от рони Посмотреть сообщение
mrFlyer,
4 пост там строка 15
Сделал так:


function fileResize(image){
	var canvas 		= document.createElement('canvas');
	var ctx 		= canvas.getContext("2d");		
	var newImage 	= new Image();
	newImage.onload 	= function(){
		canvas.width 	= 300;
		canvas.height 	= 300; 			
		ctx.drawImage(this, 0, 0, 300, 300);
		return ctx.getImageData(0, 0, 300, 300);	
	}
	newImage.src	= 	image.result;

	
	document.getElementById("testIMG").src	=	newImage.src;
}


"testIMG" отрисовал оригинальное изображение, а не урезанное. =(
Ответить с цитированием
  #6 (permalink)  
Старый 12.01.2015, 15:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,149

mrFlyer,
результат будет асинхронно вам просто надо учесть этот момент и поставить нужную функцию в 12 строке ваш 1 пост
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Повтор фото (getUserMedia(),HTML5 Canvas) aspex Элементы интерфейса 1 27.12.2014 16:46
Canvas картинка с обесцвечиванием. cheba Общие вопросы Javascript 9 31.05.2013 09:13
Drag&Drop and resize wawandas Элементы интерфейса 0 05.08.2012 14:59
Создание экземпляра Canvas не затрагивая HTML Tails Общие вопросы Javascript 2 09.03.2012 13:55
Добавить на canvas еще один елемент greengarlic Общие вопросы Javascript 5 22.09.2010 10:16